package com.zxy.pojo.vo;

import lombok.Data;
import java.util.List;

/**
 * 通用分页响应VO（支持泛型rows<T>，可复用）
 */
@Data
public class PageResponseVO<T> {
    /** 总记录数 */
    private Long total;

    /** 当前页数据列表（泛型T，支持任意业务实体） */
    private List<T> rows;

    /** 响应码（成功默认200） */
    private Integer code = 200;

    /** 响应消息（成功默认"查询成功"） */
    private String msg = "查询成功";

    /** 参数回显（需求示例为null，默认null） */
    private Object params = null;

    // 静态工厂方法：快速构建成功响应
    public static <T> PageResponseVO<T> success(Long total, List<T> rows) {
        PageResponseVO<T> vo = new PageResponseVO<>();
        vo.setTotal(total);
        vo.setRows(rows);
        return vo;
    }

    // 静态工厂方法：快速构建失败响应（可选）
    public static <T> PageResponseVO<T> fail(String msg) {
        PageResponseVO<T> vo = new PageResponseVO<>();
        vo.setCode(500);
        vo.setMsg(msg);
        vo.setTotal(0L);
        vo.setRows(null);
        return vo;
    }
}